package com.jelica.videoteka.pages;

import java.util.LinkedList;

import org.apache.tapestry5.annotations.InjectPage;
import org.apache.tapestry5.annotations.OnEvent;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.annotations.SetupRender;
import org.apache.tapestry5.ioc.annotations.Inject;

import com.jelica.videoteka.beans.Korisnik;
import com.jelica.videoteka.beans.Video;
import com.jelica.videoteka.beans.Videotekar;
import com.jelica.videoteka.interfaces.IznajmljivanjeI;
import com.jelica.videoteka.interfaces.KorisnikI;
import com.jelica.videoteka.interfaces.VideoI;
import com.jelica.videoteka.interfaces.VideotekarI;
import com.jelica.videoteka.service.KorisniksI;
import com.jelica.videoteka.service.VideosI;
import com.jelica.videoteka.service.VideotekarsI;

public class Odabir {
	@Inject
	@Property
	private VideosI videos;

	@Property
	private VideoI tekuciVideo;

	@InjectPage
	private VideoDetalji videoDetaljiStrana;

	@OnEvent(component = "videoDetailsLink")
	Object onShowDetails(String title) {
		VideoI izabraniVideo = videos.retrieveJedanVideo(title);
		videoDetaljiStrana.setIzborVidea(izabraniVideo);
		return videoDetaljiStrana;
	}
	
	
	@Inject
	@Property
	private KorisniksI korisniks;

	@Property
	private KorisnikI currentKorisnik;
	
	@InjectPage
	private KorisnikDetalji korisnikDetaljiStrana;

	@OnEvent(component = "korisnikDetailsLink")
	Object onShowDetail(String name) {
		KorisnikI izabraniKorisnik = korisniks.retrieveJedanKorisnik(name);
		korisnikDetaljiStrana.setIzborKorisnika(izabraniKorisnik);
		return korisnikDetaljiStrana;
	}
	
	@Inject
	@Property
	private VideotekarsI videotekars;

	@Property
	private VideotekarI currentVideotekar;
	
	@Property
	@Persist
	private VideoI video;

	
	@SetupRender
	public void createObject() {
		video = new Video();
		video.setIznajmljivanjeI(new LinkedList<IznajmljivanjeI>());
		korisnik = new Korisnik();
		korisnik.setIznajmljivanjeI(new LinkedList<IznajmljivanjeI>());
		videotekar = new Videotekar();
		videotekar.setIznajmljivanjeI(new LinkedList<IznajmljivanjeI>());
	}

	void onSuccess() {
		videos.save(video);
		korisniks.save(korisnik);
		videotekars.save(videotekar);
	}
	@Property
	@Persist
	private KorisnikI korisnik;

	@Property
	@Persist
	private VideotekarI videotekar;


	

	

	
	
}
